📄 rfc722.txt
字号:
-7- Many of these problems are too complex to warrant theirconsideration in any but the most active services. As aresult, services are often constructed which avoidproblems by inefficiencies in their operation, as mentionedabove. Provision of an interaction mechanism and primitivesfor use by such services would promote efficiency interactioneven by simple services which do not have the resources toconsider all the problems in detail.VII. SERVICE ENHANCEMENT When particular programs implementing a service areundergoing development simultaneously by severalorganizations, or are maintained at many distributed sites.many problems can develop concerning the compatibility ofdissimilar servers. This situation occurs in the initial phase ofimplementing a service, as well as whenever the protocolsare modified to fix problems or expand the service.Virtually every interaction protocol is modified from timeto time to add new capabilities. Two particular examplesarc the TELNET protocol and mail header formats. In most cases, the basic protocol had no facility forimplementing changes in an invisible fashion. This has hadseveral consequences. First, it is very difficult to change a protocol unlessthe majority of concerned maintainers are interested in thechanges and therefore willing to exert effort to change theprograms involved. This situation has occurred in previouscases because any change necessarily impacts all servers.The services involved therefore often stagnate, and itbecomes inappropriately difficult to provide a customer witha seemingly simple enhancement. Second, when protocols change by will of the majority,existing servers often stop working or behave erraticallywhich they suddenly find their partner speaking a newlanguage. This is equally disconcerting to the servicecustomer, as well as annoying to the maintainers of theservers at the various sites affected. These problems can be easily avoided, or at leastsignificantly reduced, by careful design of the interactionprotocols. In particular, the interaction mechanism itselfcan be structured to avoid the problem entirely, leavingonly those problems associated with the particular serviceoperations themselves. The interaction machinery should be structured so thatthe mechanisms of the interaction substrate itself may beimproved or expanded in a fashion which is absolutelyinvisible to current servers. -8- 1/ No server should be required to implement a change which is unimportant to its customers. 2/ No server should be prevented from utilizing a new facility when interacting with a willing partner. 3/ Service should not be degraded in any way when a new protocol facility is made available. In cases where a single service is provided bydifferent server programs at many sites, it is desirable forthe various sites to be able to participate at a levelappropriate to them. A new server program should be able toparticipate quickly, using only simple mechanisms of theprotocol, and evolve into more advanced, powerful, orefficient interaction as desired. Sites wishing to utilizeadvanced or experimental features must be allowed to do sowithout imposing implementation of such features on others.Conversely, sites wishing to participate in a minimalfashion must not prevent others from using advancedfeatures. In all cases, the various servers must be capableof continued interaction at the highest level supported byboth. The goal is an evolving system which maintainsreliability as well as both upward and downwardcompatibility. The protocol itself should have thesecharacteristics, and it should provide the mechanisms toservice interaction protocols to be defined whichinherit these qualities.VIII. STRUCTURING AN INTERACTION MECHANISM The qualities presented previously should provide atleast a starting point for implementation of services whichavoid the problems mentioned. The rest of this paperaddresses issues of a particular possible architecture of aninteraction mechanism. The design architecture splits the service-specificconventions from those of the interaction per se. Aninteraction protocol is provided which implements themachinery of the request-reply model, and includes handlingof the problems of data precision, synchronization, andenhancement. This protocol is not specific to any service,but rather provides primitives, in the form ofservice-designed requests and replies, on which a particularservice protocol is built. An actual implementation for a particular service couldmerge the code of the interaction protocol with the serviceitself, or the interaction protocol could be provided as a'service' whose customer is the service being implemented. -9- The goals of this design architecture follow. 1/ Provision of a general interaction mechanism to be used by services which follow a request-reply discipline. Services would design their protocols using the primitives of the mechanism as a foundation. 2/ INTERACTION MECHANISM EXTENSIBILITY. The interaction mechanism may be expanded as desired without impacting on existing servers unless they wish to use the new features. 3/ SERVER EXTENSIBILITY. Servers can be implemented using the most basic primitives. Implementations may later be extended to utilize additional capabilities to negate some of the inefficiency inherent in a strict request-reply structure. 4/ SERVICE EXTENSIBILITY. The primitives permit a service to be expanded as desired without impacting on existing servers in any way unless they wish to use the new features. 5/ SERVER COMPATIBILITY. Within the set of servers of a given application, it is possible to have different servers operating at different levels of sophistication, and still maintain the ability for any pair of servers to interact successfully. These goals involve two basic areas of design. First,the interaction mechanism itself is designed to meet thegoals. Secondly, guidelines for structure of the particularservice' protocols are necessary, in order for it to inheritthe qualities needed to meet the goals.IX. PARTITIONING THE PROBLEM In defining the interaction mechanism itself, theproblem may be simplified by considering two areas ofconcern separately. 1/ The characteristics and format of the data conveyed by the channel may be defined. 2/ The conventions used to define the interaction may be defined, in terms of the available data supported by the channel. -10- For purposes of this paper, the data repertoire andcharacteristics of the channel are assumed to be asdescribed in [Reference 3] and summarized in anappendix. Discussions of the interaction between serverswill use only the abstract concepts of primitive andsemantic data items, to isolate the issues of interactionfrom those of data formats and communication details, andtherefore simplify the problem. Additionally, actual implementation of a mechanismfollowing the ideas presented here can be accomplished in amodular fashion, isolating code which is concerned with thechannel itself from code concerned with the interactionbehavior. The interaction mechanism provides primitives to theservice' designer which are likewise defined in terms of thedata items available. Service designers are encouraged, butnot required, to define interactions in terms of these dataonly.X. THE PRIMITIVES The interaction mechanism assumes the existence of achannel [Reference 3] between two servers. Twonew semantic data types are defined to implement theinteraction. These are, unsurprisingly, called CONTROLREQUESTs and CONTROL REPLYs. Each of these data itemscontains at least two elements. 1/ The TYPE element identifies a particular type of request or reply. 2/ The SEQUENCE element is used to match replies to their corresponding request. Other elements may appear. Their interpretationdepends on the particular type of request or reply in whichthey appear. The interaction protocol itself is defined in terms ofcontrol requests and control replies. A very small numberof request and reply types is defined as the minimalimplementation level. Additional request and reply typesare also defined, for use by more advanced servers, toProvide additional capabilities to the service, or simply toincrease efficiency of operation. -11- Two additional data items are defined, called USERREQUESTs and USER REPLYs. These are structured likerequests and replies, but the various types are defined bythe service itself, to implement the primitives needed inits operation. Control and user requests and replies are genericallyreferenced as simply REQUESTs and REPLYs. The protocol of the interaction has severalcharacteristics which form the basis of the request-replymodel, and attempt to meet the goals mentioned previously. 1/ Every request elicits a reply. 2/ Every reply is associated unambiguously with a previous request. 3/ Each server always knows the state of the interaction, such as whether or not more data is expected from its partner. 4/ The protocol definition includes enumeration of the possible responses for each request. Service protocols are encouraged to do likewise for user requests and user replies. 5/ Servers who receive requests of unknown type issue a response which effectively refuses the request. Servers attempting to use advanced features of a protocol 'rephrase' their requests in simpler terms where possible to maintain the previous level of service. The minimal implementation will support interactionalmost exactly along the lines of the request-replydiscipline. Extensions to the minimal configuration are defined fortwo reasons. First, the strict request-reply disciplinemodel is inefficient for use in high-volume situationsbecause of the delays involved. Several extensions aredefined to cope with this problem. Thus, although theinteraction is based on such a discipline, it does notnecessarily implement the interaction in that fashion.Second, additional primitives are defined which provide somestandard process synchronization operations, for use by theservices. The protocol architecture presented here is defined indetail in an associated document. [Reference 4] -12-Appendix I -- The Channel The following discussion is a summary of the ideaspresented in [Reference 3], which should beconsulted for further detail. The communication link between two servers is termed aCHANNEL. Channels provide bidirectional communicationscapabilities, and will usually be full-duplex. The programsinvolved establish the channel as their individualapplications require, using some form of initial connectionprotocol. The channel acts as an interface between servers. Itconveys abstract data items whose semantics are understoodby the programmers involved, such as INTEGERs, STRINGs, FILEPATH NAMEs, and so on. Because the users of the channel mayoperate in dissimilar computer environments, theircommunication is defined only in terms of such abstract dataitems, which are the atomic units of information carried onthe channel. The program implementing the channel at eachsite converts the data between an encoded transmissionformat appropriate to the particular communication linkinvolved, and whatever internal representational form isappropriate in the computer itself. The channel protocol provides a mechanism fordefinition of various types of data items of semantic valuefor the particular service concerned, for example, possibly,user-name, set, syllable, sentence, and other data items ofinterest to the particular service. The channel provides amechanism for transportation of such user-defined data fromhost to host. The channel may actually be implemented by one or moreseparate encoding mechanisms which would be used indifferent conditions, initially, the channel machinery wouldprovide a rudimentary facility based on a single mechanismsuch as the MSDTP [Reference 3]. The mechanism is not dependent on the existence ofactual line-style network connections but will operate inother environments, such as a message-oriented (as opposedto connection-oriented) communications architecture, and infact is more naturally structured for such an environment. -13-XI. REFERENCES[1] Network Information Center, ARPANET Protocol Handbook,April, 1976.[2] Broos, Haverty, Vezza, Message Services Protocolproposal, December, 1975.[3] Haverty, Jack, Message Services Data Transfer Protocol,NWG RFC 713, NIC 34729, April, 1976.[4] Haverty, Jack, RRP, A Process Communication Protocol forRequest-reply Disciplines, NWG RFC 723, NIC 36807, (tobe issued) -14-
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -